An anti-rollback device makes it possible, for example, to ensure that the change in the state of a component of a system is strictly one-way. Thus for example, if the system employs a software component of version V1 containing security vulnerabilities, the owner of the system may manually update the software to an updated version V2 while making sure that the software cannot revert back to version V1.
Another example is a system allowing an application to be used N times. Each time the application is executed, an internal count-up (or count-down) counter is incremented (or decremented) to N (or to 0). Furthermore, this counter cannot reverse direction. Generally, an anti-rollback device uses technology that either allows a physical quantity to be irreversibly modified, or allows the new value to be recorded in a non-volatile memory device updated by a trusted entity.
In systems on chips (SOCs), in the first case fuses are generally used and in the second case a non-volatile memory (EEPROM, etc.) is generally used. However, although fuses can be produced in purely digital technology, they are costly in terms of their footprint and are not flexible because a high-voltage source needs to be provided, either on the chip or off the chip, in order to “blow” them. As for non-volatile memories, they are also costly both in technological terms and in terms of their footprint.